- Introduction to metabolomics
- Concept of LC-MS data
- Handling and processing metabolomics data
- Annotation of metabolomics data
CSAMA 2023
What are we measuring? … depends on context:
How are we measuring these small compounds?
Where can we measure small compounds/metabolites?
Where can we measure small compounds/metabolites?
Glucose (C6H12O6)
Glucose (C6H12O6)
Fructose (C6H12O6)
Mannose (C6H12O6)
Glucose (C6H12O6)
Fructose (C6H12O6)
Mannose (C6H12O6)
Sample is dissolved in a fluid (mobile phase).
Mobile phase carries analytes through column (stationary phase).
Sample is dissolved in a fluid (mobile phase).
Mobile phase carries analytes through column (stationary phase).
Separation based on affinity for the column’s stationary phase.
Sample is dissolved in a fluid (mobile phase).
Mobile phase carries analytes through column (stationary phase).
Separation based on affinity for the column’s stationary phase.
Commonly used: RPLC (Reversed Phase LC). HILIC (hyrophilic liquid interaction chromatography)
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
Signal measured along retention time (150-175 seconds).
Signal along rt (chromatogram) of an [M+Na]+ ion of C6H12O6.
ms <- readMSData(fl, mode = "onDisk")
sps <- Spectra(fl, backend = MsBackendMzR())
ms <- readMsExperiment(fl)
sps <- Spectra(fl, backend = MsBackendMzR())
findChromPeaks
adjustRtime
groupChromPeaks
featureValues
## DataFrame with 779 rows and 6 columns ## mz rt sample_1 sample_2 sample_3 sample_4 ## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric> ## FT001 326.378 25.409 4654.057 4733.86 4692.92 4801.74 ## FT002 134.096 16.513 767.239 822.61 804.76 884.11 ## ... ... ... ... ... ... ... ## FTM936 501.383 137.340 7767.00 7854.34 7804.26 7931.94 ## FTM937 612.404 28.094 1667.49 1789.21 1653.93 1757.56
## DataFrame with 779 rows and 6 columns ## mz rt sample_1 sample_2 sample_3 sample_4 ## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric> ## FT001 326.378 25.409 4654.057 4733.86 4692.92 4801.74 ## FT002 134.096 16.513 767.239 822.61 804.76 884.11 ## ... ... ... ... ... ... ... ## FTM936 501.383 137.340 7767.00 7854.34 7804.26 7931.94 ## FTM937 612.404 28.094 1667.49 1789.21 1653.93 1757.56
## DataFrame with 779 rows and 6 columns ## mz rt sample_1 sample_2 sample_3 sample_4 ## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric> ## FT001 326.378 25.409 4654.057 4733.86 4692.92 4801.74 ## FT002 134.096 16.513 767.239 822.61 804.76 884.11 ## ... ... ... ... ... ... ... ## FTM936 501.383 137.340 7767.00 7854.34 7804.26 7931.94 ## FTM937 612.404 28.094 1667.49 1789.21 1653.93 1757.56
| name | formula | exactmass |
|---|---|---|
| Caffeine | C8H10N4O2 | 194.1 |
| name | formula | exactmass | [M+H]+ |
|---|---|---|---|
| Caffeine | C8H10N4O2 | 194.1 | 195.1 |
| name | formula | exactmass | [M+H]+ | [M+Na]+ |
|---|---|---|---|---|
| Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
| name | formula | exactmass | [M+H]+ | [M+Na]+ |
|---|---|---|---|---|
| Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
mtch <- matchValues(query, target,
Mass2MzParam(c("[M+H]+", "[M+Na]+")))| name | formula | exactmass | [M+H]+ | [M+Na]+ |
|---|---|---|---|---|
| Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
mtch <- matchValues(query, target,
Mass2MzParam(c("[M+H]+", "[M+Na]+")))query: experimental m/z values.target: reference masses (e.g. from HMDB, ChEBI, PubChem, …).| name | formula | exactmass | [M+H]+ | [M+Na]+ |
|---|---|---|---|---|
| Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
| Enprofylline | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
| name | formula | exactmass | [M+H]+ | [M+Na]+ |
|---|---|---|---|---|
| Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
| Enprofylline | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
mtch <- matchValues(query, target,
Mass2MzRtParam(c("[M+H]+", "[M+Na]+")))simmat <- compareSpectra(a, b)
mtch <- matchSpectra(query, target,
CompareSpectraParam())SpectriPy: integrate python MS libraries (matchms, MS2DeepScore) into Spectra-based workflows.
xcmsTutorials: exploring and analyzing LC-MS using Spectra and xcms (updated workflow with upcoming version of xcms).
SpectraTutorials: introduction to MS data handling and processing using Spectra.
MetaboAnnotationTutorials: annotation of untargeted metabolomics data.
Thank you for your attention